import turtle as t
import location_elem as L
import math
def distance(x1,y1,x2,y2):
    return pow(pow(x2-x1,2)+pow(y2-y1,2),0.5)
t.screensize(L.X1,L.Y1)
t.colormode(255)
red=(238,28,37)
yellow=(255,255,0)
t.bgcolor(red)
t.pencolor(yellow)
t.penup()
t.ht()
#锤把开始
t.pu()
t.goto(L.E)
t.pendown()
t.begin_fill()
t.fillcolor(yellow)
t.goto(L.F)
t.goto(L.F1)
t.goto(L.E1)
t.goto(L.E)
t.end_fill()
t.penup()
#锤把完成
#锤头开始
t.goto(L.G)
t.pendown()
t.begin_fill()
t.seth(45)
t.forward(L.GH)
t.seth(135)
t.forward(L.GI)
t.goto(L.I)
t.goto(L.G)
t.penup()
t.end_fill()
#开始去掉右上角圆
t.goto(L.K)
t.pencolor(red)
r=distance(L.K[0],L.K[1],L.J[0],L.J[1])
t.fillcolor(red)
t.begin_fill()
t.seth(180)
t.forward(r)
t.pendown()
t.seth(270)
t.circle(r,180)
t.seth(180)
t.forward(2*r)
t.penup()
t.end_fill()
#锤子结束 镰刀开始
S=(L.R[0]+distance(L.R[0],L.R[1],L.N[0],L.N[1]),L.R[1])
U=(L.T[0],L.T[1]-distance(L.T[0],L.T[1],S[0],S[1]),)
#print((U[0]-L.OX)/L.DX,(U[1]-L.OY)/L.DY,distance(L.T[0],L.T[1],S[0],S[1]))
#右外侧圆开始
t.goto(L.N)
t.seth(0)
t.pendown()
t.fillcolor(yellow)
t.begin_fill()
t.pencolor(yellow)
r=distance(L.M[0],L.M[1],L.N[0],L.N[1])
t.circle(-r,180)
t.penup()
# #右外侧圆结束 下左外侧圆开始
r=distance(L.P[0],L.P[1],L.O[0],L.O[1])
degree=math.degrees(2*math.asin(distance(L.Q[0],L.Q[1],L.O[0],L.O[1])/(2*r)))
t.goto(L.O)
t.pendown()
t.seth(180)
t.circle(-r,degree)
t.penup()
# #下左外侧圆结束 QW 笔在Q点
t.pendown()
t.goto(L.W)
t.seth(315)
r=distance(L.V[0],L.V[1],U[0],U[1])
degree=math.degrees(2*math.asin(distance(L.W[0],L.W[1],U[0],U[1])/(2*r)))
t.circle(r,degree)
#下左内侧圆结束 在U点
t.seth(0)
r=distance(L.T[0],L.T[1],U[0],U[1])
t.circle(r,90)
#下右内侧圆结束 在S点
t.seth(90)
r=distance(L.R[0],L.R[1],L.N[0],L.N[1])
degree=math.degrees(2*math.asin(distance(L.N[0],L.N[1],S[0],S[1])/(2*r)))
t.circle(r,degree)
t.penup()
t.end_fill()
#结束党徽 开始镰刀把
t.goto(L.X2)
t.seth(0)
t.fillcolor(yellow)
t.begin_fill()
r=distance(L.X[0],L.X[1],L.X2[0],L.X2[1])
t.circle(r,360)
t.end_fill()
t.penup()
#画连接段
t.goto(L.Z)
t.pendown()
t.begin_fill()
t.goto(L.Z2)
t.goto(L.Y2)
t.goto(L.Y)
t.goto(L.Z)
t.end_fill()
t.mainloop()